package com.yaorange.module.system.service;

import com.yaorange.module.system.entity.dto.SysUserQueryDTO;
import com.yaorange.pojo.SysUser;
import com.yaorange.response.PageResult;

import java.util.List;

/**
 *  用户服务接口
 */
public interface SysUserService {
    /**
     *  根据编号查询用户
     * @param id 用户编号
     * @return
     */
    SysUser findById(Long id);

    /**
     *  新增用户
     * @param user 用户信息
     */
    void save(SysUser user);

    /**
     *  更新用户
     * @param userDetails
     */
    void update(SysUser userDetails);

    /**
     *  删除用户
     * @param id
     */
    void deleteById(Long id);

    /**
     *  分页查询
     * @param sysUserQueryDTO
     * @return
     */
    PageResult<SysUser> findAllUsers(SysUserQueryDTO sysUserQueryDTO);

    /**
     *  用户赋予角色
     * @param id
     * @param roleIds
     */
    void grantRolesList(Long id, List<Long> roleIds);

    /**
     *  获取用户的角色列表
     * @param userId
     * @return
     */
    List<Long> findRoleListByUserId(Long userId);

    /**
     *  根据用户名查询用户
     * @param username
     * @return
     */
    SysUser findUserByName(String username);
}
